package com.huang.pojo;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;

import javax.annotation.Resource;

public class People {
    //Autowired注解注入方式，自动装配当有多个对像的时候可以使用@Qualifier来指定对象
    @Qualifier(value = "cat")
    @Autowired
    private Cat cat;
    //如果显示定义了Autowired的required属性为false，说明这个对象可以为nuLl，否则不允许为空
    //@Resource(name="dog")绑定也可以自动装配但是没有@Autowired智能
    @Autowired(required = false)
    private Dog dog;
    private String name;

    /*
@Resource和@ Autowired的区别:
都是用来自动装配的，都可以放在属性字段上
@Autowired通过byType的方式实现，而且必须要求这个对象存在!【常用】
@Resource默认通过byname的方式实现，如果找不到名字，则通过byType实现!如果两个都找不到的情况下，就报错!【常用】
执行顺序不同:@Autowired通过byType的方式实现。
     */
    public Cat getCat() {
        return cat;
    }

    public void setCat(Cat cat) {
        this.cat = cat;
    }

    public Dog getDog() {
        return dog;
    }

    public void setDog(Dog dog) {
        this.dog = dog;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return "People{" +
                "cat=" + cat +
                ", dog=" + dog +
                ", name='" + name + '\'' +
                '}';
    }
}
